Service Oriented Architecture (SOA) is an architectural paradigm using which software resources can be published as discoverable services on a network. A service is a discoverable entity that exists as a single instance and is capable of providing rudimentary and complex business process operations. The service interacts with applications and other services via a loosely coupled, message-based communication model. A salient feature of the service is its inherent feature of hiding from the user nature of the service implementation module. This enables loose coupling between a service consumer and a service provider. Further, SOA also provides a flexible model which can be integrated using open standard architecture, thereby providing a higher level of abstraction and encapsulation.
Further, SOA enables composition of applications, processes, or more complex services from other less complex services. This enables the usage of diverse services to build applications and processes without considering details and differences of those environments. However, to enable this SOA feature, the services are constructed and exposed using coarse-grained interfaces.
Although SOA is widely used for realizing agile information technology (IT) for various business models, a methodological approach for identifying services to be exposed is needed. Additionally, a methodological approach is needed to determine services characteristics. The service characteristics may be used to measure the utility of offering one set of activities as a service over another set of activities. Additionally, different stakeholders in a business have different perspectives towards service identification. For example, business leaders may be more focused on identifying services which aids in reducing the time to market of a product. However, a chief technology officer may aim for identifying services that aid in business IT alignment. The service characteristics may be further used to cater to the different perspectives of the different stakeholders.